/***************************************************************************

-------------------
    begin                : 
    copyright            : kuzkok
    email                : kuzkok at gmail.com

***************************************************************************
*                                                                         *
*   This program is free software; you can redistribute it and/or modify  *
*   it under the terms of the GNU General Public License as published by  *
*   the Free Software Foundation; either version 2 of the License, or     *
*   (at your option) any later version.                                   *
*   
*   Данная программа является свободным программным обеспечением;         *
*   Вы можете распространять ее и/или модифицировать в соответствии с     *
*   GNU General Public License опубликованной Фондом свободного           *
*   программного обеспечения; используемая версия лицензии - 2 или        *
*   (по вашему выбору) любая более поздняя                                *
***************************************************************************/

#ifndef STATIONSERIES_H
#define STATIONSERIES_H

#include "centerlinepolyline.h"

class StationSeries : public CenterlinePolyline
{
    Q_OBJECT
public:
    StationSeries();
    explicit StationSeries(QUuid theEventID);

    QString seriesName()
    {
        return mSeriesName;
    }

    int seriesOrder()
    {
        return mSeriesOrder;
    }

    int subTypeCD()
    {
        return mSubTypeCD;
    }

    double beginStation()
    {
        return mBeginStation;
    }

    double endStation()
    {
        return mEndStation;
    }

    double fromConnectionStationValue()
    {
        return mFromConnectionStationValue;
    }

    double toConnectionStationValue()
    {
        return mToConnectionStationValue;
    }

    QUuid fromSeriesEventID()
    {
        return mFromSeriesEventID;
    }

    QUuid toSeriesEventID()
    {
        return mToSeriesEventID;
    }

    QUuid lineLoopEventID()
    {
        return mLineLoopEventID;
    }

signals:

public slots:
    void setSeriesName(QString value)
    {
        mSeriesName = value;
    }

    void setSeriesOrder(int value)
    {
        mSeriesOrder = value;
    }

    void setSubTypeCD(int value)
    {
        mSubTypeCD = value;
    }

    void setBeginStation(double value)
    {
        mBeginStation = value;
    }

    void setEndStation(double value)
    {
        mEndStation = value;
    }

    void setFromConnectionStationValue(double value)
    {
        mFromConnectionStationValue = value;
    }

    void setToConnectionStationValue(double value)
    {
        mToConnectionStationValue = value;
    }

    void setFromSeriesEventID(QUuid value)
    {
        mFromSeriesEventID = value;
    }

    void setToSeriesEventID(QUuid value)
    {
        mToSeriesEventID = value;
    }

    void setLineLoopEventID(QUuid value)
    {
        mLineLoopEventID = value;
    }


protected:
    void buildUpdateStatement();
    void buildInsertStatement();
    void bindQueryValues(QSqlQuery &query);

private:
    QString mSeriesName;
    int
            mSeriesOrder,
            mSubTypeCD;
    double
            mBeginStation,
            mEndStation,
            mFromConnectionStationValue,
            mToConnectionStationValue;

    QUuid
            mFromSeriesEventID,
            mToSeriesEventID,
            mLineLoopEventID;

};

#endif // STATIONSERIES_H
